package com.euond.permission.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.euond.common.core.dto.ResultDto;
import com.euond.common.core.service.BaseService;
import com.euond.permission.entities.RoleResource;
import com.euond.permission.entities.UserPermission;
import com.euond.permission.entities.UserRole;

import java.util.List;
import java.util.Map;

/**
 * Created by Daniel on 19/06/2017.
 * User permission service
 */
public interface UserPermissionService extends BaseService<UserPermission> {

    /**
     * 查询用户权限（分页）
     *
     * @param searchParams
     */
    public Page<UserPermission> findUserPermissions(Map<String,Object> searchParams);

    /**
     * 查询用户的权限（shiro授权）
     *
     * @param userId
     */
    List<String> findStringPermissions(Long userId);

    /**
     * 查询用户的角色（shiro授权）
     *
     * @param userId
     */
    List<String> findStringRoles(Long userId);

    /**
     * 按用户角色增加用户权限关系,主要应用于用户角色新增后
     *
     * @param userRole
     */
    public void addUserPermissionByUserRole(UserRole userRole);

    /**
     * 按角色资源增加用户权限关系,主要应用于角色资源新增后
     *
     * @param roleResource
     */
    public void addUserPermissionByRoleResource(RoleResource roleResource);

    /**
     * 按用户重新生成用户权限，主要应用于删除 用户角色关系后
     *
     * @param userId
     */
    public void updateUserPermissionByUser(Long userId);

    /**
     * 按资源+公司重新生成用户权限，主要应用于删除 角色资源关系后
     *
     * @param resourceId
     * @param companyId
     */
    public void updateUserPermissionByResource(Long resourceId,Long companyId);
}
